class MatrizNumeros2D {
	private Numero pMatriz[][];
	
	public MatrizNumeros2D (int filas, int columnas) {
		pMatriz = new Numero[filas][columnas];
	}
	
	public Numero get(int i, int j) {
		return pMatriz[i][j];
	}
	
	public void set(int i, int j, Numero n) {
		pMatriz[i][j] = n;
	}
	
	public int cantFilas() {
		return pMatriz.length;
	}
	
	public int cantColumnas() {
		if (pMatriz[0] == null)
			return 0;
		return pMatriz[0].length;
	}
	
	public void Llenar(GeneradorNumeros gen) {
		int i,j;
		for (i=0; i < this.cantFilas(); i++) {
			for (j=0; j < this.cantColumnas(); j++) {
				this.set(i,j,gen.GenerarNumero());
			}
		}
	}
	
	public void Sumar(MatrizNumeros2D mat) {
		int i,j;
		Numero n;
		for (i=0; i < this.cantFilas(); i++) {
			for (j=0; j < this.cantColumnas(); j++) {
				n = this.get(i,j);
				n.Sumar(mat.get(i,j));
				this.set(i,j,n);
			}
		}	
	}

	public String toString() {
		int i,j;
		String s = "";
		for (i=0; i < this.cantFilas(); i++) {
			for (j=0; j < this.cantColumnas(); j++) {
				s += (this.get(i,j)).toString();
				s += "\t";								
			}
			s += "\n";
		}
		return s;
	}
}